DeepSeek-OCR推进一大步!百度Unlimited-OCR将KV cache压成常数,性能SOTA
suani AIGC开放社区 2026年6月23日 10:03
专注AIGC技术的专业社区,关注大语言模型(LLM)的发展和应用落地,聚焦LLM及AI技术的市场研究和开发者生态,欢迎关注!
DeepSeek-OCR 把端到端 OCR 拉到一个新高度之后,超长文档能不能轻松一次识别,成了大家最关心的事。
百度推出 Unlimited-OCR,单次前向就能转录几十页文档,OmniDocBench v1.6 总分 93.92%,端到端 SOTA。
Unlimited-OCR 核心是 Reference Sliding Window Attention(参考滑动窗口注意力,下文简称 R-SWA),把解码器的 KV cache 从线性增长压成常数。
OCR 的长文档时代来了。
长文档解析的工作记忆难题
人类抄书,瞄几眼刚写的字,然后继续往下写,几百页下来节奏稳定,效率不掉。
而机器不是这样。当前主流端到端 OCR 模型都用 LLM(大语言模型)做解码器,序列越长,KV cache 越攒越多,显存吃紧,速度也越来越慢。
DeepSeek-OCR 也没绕过这道坎,把整本十几页的书塞进去,想要一把跑完,KV cache 涨到难以伺候。
老办法是 for 循环逐页处理,每页跑完清空内存,再来下一页。工程方案能用,但有点笨,一页一页割裂。长文档本该是连续过程,被拆成独立小任务交给外部调度器。这是工程绕路,离 AGI(通用人工智能)路径上的持续认知状态还差得远。
人抄书时不会回头翻看所有已经写下的字,只看周围一小段上下文保持定位,远处的输出在记忆里慢慢淡掉,称为软遗忘,跟清空不一样。
要给模型一个类似人类的工作记忆机制,让远处输出软性淡出,让近处上下文维持节奏感。
团队给了一个很形象的对照,把该注意力模式跟标准全注意力和线性注意力都做了区分,跟全注意力的差别在于历史不全看,跟线性注意力的差别在于参考 token 不参与状态更新,避免视觉特征被逐步糊掉。
R-SWA 让解码器学会边抄边忘
R-SWA 的设计很直接。每个生成 token 看两类内容,一是全部参考 token,包括视觉 token 和提示词,二是已经输出的最近 n 个 token,默认 n 等于 128。视觉 token 全程可见,输出区只看一个滑动窗口。
标准注意力是 KV cache 一路涨下去,R-SWA 把它压成常数 m 加 n,m 是参考段长度,n 是滑动窗口宽度。
Unlimited-OCR 直接沿用 DeepSeek-OCR 的看家本领 DeepEncoder。
SAM-ViT 级联 CLIP-ViT,在 bridge 处做 16 倍 token 压缩,1024x1024 的 PDF 图像压成 256 个 token。对长文档来说,视觉 token 编码一次就冻结,整个解码过程不参与状态转移。
团队保留了 DeepEncoder 的两种分辨率模式,Base 模式 1024x1024 用于多页,Gundam 模式动态分辨率用于单页。
Unlimited-OCR 是 3B 总参 MoE,500M 激活,全部注意力层换成 R-SWA。
视觉 token 不能进滑动窗口的状态更新,否则会越来越糊,识别精度直线下降。R-SWA 把视觉 token 挡在状态转移之外,跟普通线性注意力拉开差距的关键就在这里。
Kernel 实测也好看。
Flash Attention v3 内核下,DeepSeek-OCR 的 per-call 延迟随解码步数一路涨,KV cache 长度跨过对齐边界还有突变尖峰。而 Unlimited-OCR 全程常数延迟,一条平直线,显存同理。
DeepSeek-OCR 那条线一路向上爬,Unlimited-OCR 那条线几乎贴着底部水平走。计算成本和显存占用双重稳定,是长文档解析的基础。
Unlimited-OCR 基于 DeepSeek-OCR checkpoint 续训 4000 步,全局 batch 256,最大序列 32K,8x16 A800 GPU,冻结 DeepEncoder 只训 LLM。AdamW 优化器加 cosine annealing 调度,初始学习率 1e-4,Megatron-LM 框架,DeepEP 专家并行 EP 等于 4。
数据是 200 万 OCR 样本,单页多页 9 比 1,多页随机生成 20 万样本,每样本 2 到 50 页,全部打包成 32K 序列。
推理侧在 Transformers 库里实现 KV cache 管理,并在 SGLang 推理引擎里做了对应支持和优化,两个框架都能让 Unlimited-OCR 跑在常数 TPS 和常数显存下。
性能数据 SOTA 加长文档一把过
OmniDocBench 基准上全面 SOTA。
v1.5 上,Unlimited-OCR 93.23%,DeepSeek-OCR 87.01%,提升 6.22 个百分点。
文本编辑距离从 0.073 降到 0.038,公式 CDM 从 83.37 涨到 92.61,表格 TEDS 从 84.97 涨到 90.93,阅读顺序编辑距离从 0.086 降到 0.045。
v1.6 上 93.92% 总分,端到端 SOTA。
一个有意思的细节,团队只用了 200 万 PDF 文档专用数据续训就拿到 SOTA,印证了 R-SWA 在解析类任务上的有效性,全注意力在长输出场景下反而可能让模型发散。
速度也是亮点。
OmniDocBench 上 5580 TPS 对 DeepSeek-OCR 的 4951 TPS,提升 12.7%。输出越长,优势越大。
理论 TPS 上限对比,256 token 输出时两者基本持平,6000 token 时 DeepSeek-OCR 落后 Unlimited-OCR 35%。OmniDocBench 平均文档长度偏短,输出越长,Unlimited-OCR 的优势越明显。
长文档才是 Unlimited-OCR 真正的舞台。
团队自建测试集,按页数分 2、5、10、15、20、40+ 六档,每档不少于 10 本。
20 页一把过,编辑距离 0.0572,Distinct-35 是 99.89%。40+ 页编辑距离 0.1069,Distinct-35 是 96.90%,依然可用。
团队承认,40+ 页的小字错误主要来自 DeepEncoder 在多页模式下用了 Base 模式,分辨率 1024x1024,跟 R-SWA 在长程解析中迷失方向没关系。换句话说,注意力机制没掉链子,瓶颈在视觉编码端。
R-SWA 让模型只看最近 128 个输出 token,依然能准确知道自己抄到哪一页哪一行,靠的就是历史信息通过状态转移因果连续地流进滑动窗口。
不止 OCR,而是个通用解码方案
R-SWA 不只能跑 OCR。论文标题是 “Unlimited-OCR Works”,用 Works 而不用 Model,重点放在长程解析本身。
任何带参考 token 的长输出任务,ASR(自动语音识别)、翻译、字幕生成,都适用同一思路。
参考 token 全程可见,输出区滑动窗口,机制天然适合看着源、连续生成的场景。
团队明确,下一步会把 R-SWA 迁到 ASR 和翻译上做验证。
Table 2 的细分数据进一步印证了通用性。9 类文档,PPT、学术论文、书籍、彩色教材、试卷、杂志、报纸、笔记、研究报告,Unlimited-OCR 相对 DeepSeek-OCR 全部指标都有提升,相对 DeepSeek-OCR 2 大部分指标更好。
复杂的 PPT、报纸、杂志版式都没掉。R-SWA 没有为 OCR 量身定制 trick,本身就是一种更通用的解码器结构,把全注意力换成宽度 128 的因果参考滑动窗口,单页 OCR 任务上同样有效无损。
局限性团队也没回避。32K 上下文下做不到真正无限,prefill 长度会随页数累加。
团队短期计划把上下文拉到 128K,长期想做 prefill pool,让模型学会自动取 prefill KV 块,模拟人翻书的动作。
代码和模型权重已开源,技术总监 YY 疑似DeepSeek出走大神。
把 KV cache 从线性增涨变成常数,OCR 才真正具备处理整本书的能力。
R-SWA 能跑多远,下一个验证场会是 ASR 还是翻译,值得蹲一下。
参考资料:
https://huggingface.co/baidu/Unlimited-OCR
https://github.com/baidu/Unlimited-OCR
END
点击图片立即报名👇️